package com.it.plic.Field;

import java.lang.reflect.Field;

/**
 * @author げっしょく
 * @date 2021/8/9
 */
public class Test1 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException {
        //method1();
        //method2();
        //method3();
        //Field getDeclaredField(String name)	返回单个成员变量对象
        //创建类对象
        Class aClass = Class.forName("com.it.plic.Field.Student");
        //获取单个的成员变量包括私有
        Field menoy = aClass.getDeclaredField("menoy");
        System.out.println(menoy);


    }

    private static void method3() throws ClassNotFoundException, NoSuchFieldException {
        //Field getField(String name)	返回单个公共成员变量对象（必须真实存在，且public修饰）
        //创建类对象
        Class aClass = Class.forName("com.it.plic.Field.Student");
        //获取单个公共的成员变量
        Field name = aClass.getField("name");
        System.out.println(name);
    }

    private static void method2() throws ClassNotFoundException {
        //Field[] getDeclaredFields()	返回所有成员变量对象的数组
        //创建类对象
        Class aClass = Class.forName("com.it.plic.Field.Student");
        //获取所有的成员变量包括私有
        Field[] declaredFields = aClass.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            System.out.println(declaredField);
        }
    }

    private static void method1() throws ClassNotFoundException {
        //Field[] getFields()	返回所有公共成员变量对象的数组
        //创建类对象
        Class aClass = Class.forName("com.it.plic.Field.Student");
        //获取所有的公共成员变量
        Field[] fields = aClass.getFields();
        //循环打印
        for (Field field : fields) {
            System.out.println(field);
        }
    }
}
